Termination Proof Script

Consider the TRS R consisting of the rewrite rules
1:    0(#)  → #
2:    x + #  → x
3:    # + x  → x
4:    0(x) + 0(y)  → 0(x + y)
5:    0(x) + 1(y)  → 1(x + y)
6:    1(x) + 0(y)  → 1(x + y)
7:    1(x) + 1(y)  → 0((x + y) + 1(#))
8:    (x + y) + z  → x + (y + z)
9:    # * x  → #
10:    0(x) * y  → 0(x * y)
11:    1(x) * y  → 0(x * y) + y
12:    (x * y) * z  → x * (y * z)
13:    x * (y + z)  → (x * y) + (x * z)
14:    app(nil,l)  → l
15:    app(cons(x,l1),l2)  → cons(x,app(l1,l2))
16:    sum(nil)  → 0(#)
17:    sum(cons(x,l))  → x + sum(l)
18:    sum(app(l1,l2))  → sum(l1) + sum(l2)
19:    prod(nil)  → 1(#)
20:    prod(cons(x,l))  → x * prod(l)
21:    prod(app(l1,l2))  → prod(l1) * prod(l2)
There are 31 dependency pairs:
22:    0(x) +# 0(y)  → 0#(x + y)
23:    0(x) +# 0(y)  → x +# y
24:    0(x) +# 1(y)  → x +# y
25:    1(x) +# 0(y)  → x +# y
26:    1(x) +# 1(y)  → 0#((x + y) + 1(#))
27:    1(x) +# 1(y)  → (x + y) +# 1(#)
28:    1(x) +# 1(y)  → x +# y
29:    (x + y) +# z  → x +# (y + z)
30:    (x + y) +# z  → y +# z
31:    0(x) *# y  → 0#(x * y)
32:    0(x) *# y  → x *# y
33:    1(x) *# y  → 0(x * y) +# y
34:    1(x) *# y  → 0#(x * y)
35:    1(x) *# y  → x *# y
36:    (x * y) *# z  → x *# (y * z)
37:    (x * y) *# z  → y *# z
38:    x *# (y + z)  → (x * y) +# (x * z)
39:    x *# (y + z)  → x *# y
40:    x *# (y + z)  → x *# z
41:    APP(cons(x,l1),l2)  → APP(l1,l2)
42:    SUM(nil)  → 0#(#)
43:    SUM(cons(x,l))  → x +# sum(l)
44:    SUM(cons(x,l))  → SUM(l)
45:    SUM(app(l1,l2))  → sum(l1) +# sum(l2)
46:    SUM(app(l1,l2))  → SUM(l1)
47:    SUM(app(l1,l2))  → SUM(l2)
48:    PROD(cons(x,l))  → x *# prod(l)
49:    PROD(cons(x,l))  → PROD(l)
50:    PROD(app(l1,l2))  → prod(l1) *# prod(l2)
51:    PROD(app(l1,l2))  → PROD(l1)
52:    PROD(app(l1,l2))  → PROD(l2)
The approximated dependency graph contains 5 SCCs: {41}, {23-25,27-30}, {32,35-37,39,40}, {49,51,52} and {44,46,47}.
Tyrolean Termination Tool  (0.12 seconds)   ---  May 3, 2006